Multi-tier applications include independently executable components which, in combination, may provide a service. Organizations may use multi-tier applications for increased flexibility, scalability, security, and/or availability, since an organization may separately configure the execution environment of each component. For example, an organization may execute each component of a multi-tier application on a separate cluster and provision each cluster according to the requirements of the corresponding component of the multi-tier application. In some examples, the organization may wish to provide high availability for the multi-tier application. In these examples, the organization may configure each cluster to provide high availability for its corresponding component.
Unfortunately, high availability for each component of a multi-tier application may not automatically translate into high availability for the multi-tier application. Because the components of a multi-tier application may be logically interdependent, a fault within one component may interfere with the correct operation of another component. Accordingly, the instant disclosure identifies a need for additional and improved systems and methods for fault recovery in multi-tier applications.